package org.rslai.tcedit.util;

import java.sql.Clob;
import java.sql.SQLException;
import org.hibernate.Hibernate;

public class StrUtil {
	/**
	 * 分隔字符
	 */
	private static final String separator = "|";
	
	/***
	 * 将 Clob 类型的转为字符串
	 * @param clob 输入的 Clob 数据
	 * @return 字符串
	 */
	public static String toString(Clob clob) {
		String tmp = "";
		if (clob != null) {
			try {
				tmp = clob.getSubString(1, (int) clob.length());
			} catch (SQLException e) {
			}
		}
		return tmp;
	}

	/**
	 * 将字符串转为 Clob 类型
	 * @param str
	 * @return
	 */
	public static Clob toClob(String str) {
		return Hibernate.createClob(str);
	}

	/***
	 * 按照指定分隔符拆分为字符串数组
	 * @param clob Clob 类型
	 * @return 返回字符串数组
	 */
	public static String[] split(Clob clob) {
		return StrUtil.split(StrUtil.toString(clob));
	}
	
	/***
	 * 按照指定分隔符拆分为字符串数组
	 * @param str String 类型
	 * @return 返回字符串数组
	 */
	public static String[] split(String str) {
		return str.split("\\" + separator);
	}

	/**
	 * 按照指定分隔符拆分为字符串数组
	 * @param str 需要拆分的字符串
	 * @param separatorStr 分割字符串
	 * @return 字符串数组
	 */
	public static String[] split(String str, String separatorStr) {
		return str.split("\\" + separatorStr);
	}

	/**
	 * 根据传入的类名返回相应的 ProductID
	 * @param className 类名
	 * @return
	 */
	public static String getProductID(String className) {
		String[] tmp = className.split("\\" + "_");
		if (tmp.length == 2) {
			return tmp[1];
		} else {
			throw new IllegalArgumentException("此类名 " + className + " 未能有效的拆出 ProductID ！");
		}
	}

}
